Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add containerd2 package and upgrade runc version to 1.2.1 and libseccomp to 2.5.5 #11029

Open
wants to merge 5 commits into
base: 3.0-dev
Choose a base branch
from

Conversation

liunan-ms
Copy link
Contributor

@liunan-ms liunan-ms commented Nov 12, 2024

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • The toolchain has been rebuilt successfully (or no changes were made to it)
  • The toolchain/worker package manifests are up-to-date
  • Any updated packages successfully build (or no packages were changed)
  • Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • All package sources are available
  • cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • All source files have up-to-date hashes in the *.signatures.json files
  • sudo make go-tidy-all and sudo make go-test-coverage pass
  • Documentation has been updated to match any changes to the build system
  • Ready to merge

Summary

What does the PR accomplish, why was it needed?
As containerd 2.0 GA recently, we want to provide containerd 2.0 in azure linux 3.0 to enhance our distro. Before fully validating it, we wanted to keep the current containerd version in the existing package and offer container 2.0 in a new package so that users can try and test as their needs.

Change Log
  • Created a standalone containerd 2.0.0 package
  • Upgrade libseccomp to 2.5.5 as other older version is no longer supported upstream
  • Bump runc version to 1.2.1 required by containerd 2.0.0
Does this affect the toolchain?

NO

Test Methodology

@liunan-ms liunan-ms changed the title Liunan/containerd2 Add containerd2 package Nov 15, 2024
@liunan-ms liunan-ms marked this pull request as ready for review November 15, 2024 22:15
@liunan-ms liunan-ms requested a review from a team as a code owner November 15, 2024 22:15
Copy link
Member

@hbeberman hbeberman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changelog should be updated to mention that the 2.5.5 version bump is for libseccomp, if its necessary.

@@ -1,6 +1,6 @@
Summary: Enhanced seccomp library
Name: libseccomp
Version: 2.5.4
Version: 2.5.5
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this version bump required to build containerd/runc?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, runc requires libseccomp 2.5.5, and libseccomp v2.5.4 is no longer supported upstream, a more recent release is suggested to use. I will add the version bump of libseccomp and runc into the containerd changelog as well.


# This package replaces the old name of moby-containerd
Provides: moby-containerd = %{version}-%{release}
Obsoletes: moby-containerd < %{version}-%{release}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would get rid of these moby-containerd provides/obsoletes. Users still calling containerd "moby-containerd" in their install scripts could unknowingly get this 2.0 package because of this.

%{?systemd_requires}

BuildRequires: git
BuildRequires: golang < 1.23
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we need to pin to a lower version of golang?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great point. containerd 2.0 requires golang1.22 or above (doc) and runc is also built with both golang 1.22 and1.23 in its CI workflow. so I think we can remove this golang version restriction. @mfrw could you please confirm we could remove it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed by Falak and removed the golang version restriction.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ack on removal on golang version constraint.

@liunan-ms liunan-ms changed the title Add containerd2 package Add containerd2 package and upgrade runc version to 1.2.1 and libseccomp to 2.5.5 Nov 21, 2024
@@ -2,8 +2,8 @@
Summary: CLI tool for spawning and running containers per OCI spec.
Name: runc
# update "commit_hash" above when upgrading version
Version: 1.1.12
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have we reviewed the changelog to see what's changed between 1.1.12 and 1.2.1? Were there breaking changes that would affect containerd v1 and/or other container hosting scenarios? What other risks might there be of this upgrade?

Also, I see that runc 1.2.2 has already been released and claims to have fixes for some regressions introduced in 1.2.0. Should we be picking that up instead?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see a number of "breaking changes" listed in the 1.2.0 series in the release notes for runc, but don't have the right domain knowledge to know how likely they are to be impactful to any of our customers. Is this something that's been previously evaluated?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants